Skip to content

feat: go grpc client - #118

Merged
kacy merged 3 commits into
mainfrom
feat/grpc-go-client
Feb 14, 2026
Merged

feat: go grpc client#118
kacy merged 3 commits into
mainfrom
feat/grpc-go-client

Conversation

@kacy

@kacy kacy commented Feb 14, 2026

Copy link
Copy Markdown
Owner

summary

adds the official go client for ember over grpc. thin wrapper over generated
proto stubs with idiomatic go API.

  • clients/ember-go/: go module with generated proto stubs and high-level client
  • functional options pattern for SET (NX/XX/EX/PX) and VADD (metric, M, ef)
  • auth support via gRPC metadata headers
  • vector operations accept []float32 directly — zero parsing overhead
  • root Makefile gets proto-go target

covered commands: Get, Set, Del, Exists, Incr, IncrBy, Expire, TTL, LPush,
RPush, LPop, RPop, LRange, LLen, HSet, HGet, HGetAll, HDel, SAdd, SMembers,
SCard, ZAdd, ZRange, VAdd, VSim, Ping, FlushDB, DBSize.

what was tested

  • go test -v ./... — 2/2 pass (build verification tests)
  • go vet ./... — clean
  • proto codegen via make proto-gen in the go client directory

design considerations

the client uses grpc lazy connections (grpc.NewClient), so Dial() doesn't
actually connect until the first RPC call. this matches the go grpc best
practices and means creating a client is always non-blocking.

Base automatically changed from feat/grpc-server to main February 14, 2026 16:13
kacy added 3 commits February 14, 2026 11:15
generated go stubs from ember.proto using protoc-gen-go and
protoc-gen-go-grpc. makefile provides a proto-gen target for
regeneration.
thin wrapper over generated grpc stubs covering strings, lists,
hashes, sets, sorted sets, vectors, and server commands.

key features:
- functional options for SET (NX, XX, EX, PX) and VADD (metric, M, ef)
- auth via metadata header (WithPassword option)
- vector operations accept []float32 directly — zero parsing overhead
- build-only tests verify compilation
@kacy
kacy force-pushed the feat/grpc-go-client branch from 03449f1 to 8876c4a Compare February 14, 2026 16:15
@kacy
kacy merged commit d416818 into main Feb 14, 2026
7 checks passed
@kacy
kacy deleted the feat/grpc-go-client branch February 14, 2026 16:15
kacy added a commit that referenced this pull request Feb 19, 2026
* add go proto codegen and makefile

generated go stubs from ember.proto using protoc-gen-go and
protoc-gen-go-grpc. makefile provides a proto-gen target for
regeneration.

* add go client with idiomatic API

thin wrapper over generated grpc stubs covering strings, lists,
hashes, sets, sorted sets, vectors, and server commands.

key features:
- functional options for SET (NX, XX, EX, PX) and VADD (metric, M, ef)
- auth via metadata header (WithPassword option)
- vector operations accept []float32 directly — zero parsing overhead
- build-only tests verify compilation

* add proto-go target to root makefile
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant